/**
 * @Title:WebUploader 帮助方法
 * @author:taochen
 * @Date:2016-12-08
 */
//其他附件 上传控件初始化
function getFileUploader(filePickSel,fileListSel,fileNumLimit,delBtnSel,contentSel) {
	var $list = $(fileListSel);
	var state = 'pending';
    //var $btn = $('#ctlBtn'),
    //uploader 初始化   
	var uploader = WebUploader.create({
        auto: true,
        swf: 'asset/js/plugins/webuploader/js/Uploader.swf',
        server: '../files/uploadFile.do',
        pick: filePickSel,
        fileNumLimit: fileNumLimit,
        resize: false
    });
	//插入队列之前
    uploader.on('beforeFileQueued', function (file) {
	    	//if (file && file.type.indexOf("application/pdf") == -1) {
	          //  layer.alert("请选择pdf格式的文件！");
	          //  return false;
	       // }    	    	
        return true;
    });
    uploader.on('fileQueued', function (file) {    	
    	$list.html("");
    	$list.append( '<div id="' + file.id + '" class="item">' +
			          		'<h4 class="info">' + file.name + '</h4>' +
			                '<p class="state">等待上传...</p>' +
			          '</div>');
    	$(filePickSel).hide();
    	$(delBtnSel).show();
    });
    uploader.on('uploadStart', function (file) {
    });

    uploader.on('uploadProgress', function (file, percentage) {
    	 var $li = $( '#'+file.id ),
         $percent = $li.find('.progress .progress-bar');
	     // 避免重复创建
	     if (!$percent.length ) {
	         $percent = $('<div class="progress progress-striped active">' +
	           '<div class="progress-bar" role="progressbar" style="width: 0%">' +
	           '</div>' +
	         '</div>').appendTo($li).find('.progress-bar');
	     }
	     $li.find('p.state').text('上传中');
	     $percent.css( 'width', percentage * 100+'%' );
    });
    uploader.on('uploadSuccess', function (file, json) {
    	if (json.resultCode != '1') {
            $('#'+file.id).find('p.state').text('上传出错');
        } else {
        	$('#'+file.id).find('p.state').text('已上传');
        		$list.html( '<div id="' + file.id + '" class="item">' +
		          		'<input type="text" style="width:400px;" value="'+json.original+'" readonly="true">' +
		          '</div>');
        	$(contentSel).val(json.url);
        }
    });
    uploader.on('uploadError', function (file) {
    	 $('#'+file.id).find('p.state').text('上传出错');
    });
    uploader.on('uploadComplete', function (file) {
    	$('#'+file.id).find('.progress').fadeOut();
    });
    uploader.on('all', function( type ) {
        if (type === 'startUpload') {
            state = 'uploading';
        } else if (type === 'stopUpload') {
            state = 'paused';
        } else if (type === 'uploadFinished') {
            state = 'done';
        }
//        if (state === 'uploading' ) {
//            $btn.text('暂停上传');
//        } else {
//            $btn.text('开始上传');
//        }
    });
//    $btn.on('click', function() {
//        if ( state === 'uploading' ) {
//            uploader.stop();
//        } else {
//            uploader.upload();
//        }
//    });
    //上传对象map对象塞入
	$(delBtnSel).hide();
	uploader.delBtnSel = delBtnSel;
	uploader.filePickSel = filePickSel;
	uploader.fileListSel = fileListSel;
	uploader.contentSel = contentSel;
	
	return uploader;
}
//图片上传控件初始化
function getImgUploader(filePickSel,fileListSel,fileNumLimit,delBtnSel,contentSel){	
	// 初始化Web Uploader
	var $list = $(fileListSel);
	var uploaderImg = WebUploader.create({
	    // 选完文件后，是否自动上传。
	    auto: true,
	    // swf文件路径
	    swf:'asset/js/plugins/webuploader/js/Uploader.swf',
	    // 文件接收服务端。
	    server: '../files/uploadFile.do',
	    // 选择文件的按钮。可选。
	    // 内部根据当前运行是创建，可能是input元素，也可能是flash.
	    pick: filePickSel,
	    fileNumLimit: 1,
	    // 只允许选择图片文件。
	    accept: {
	        title: 'Images',
	        extensions: 'gif,jpg,jpeg,bmp,png',
	        mimeTypes: 'image/*'
	    }
	});		
	// 当有文件添加进来的时候
	uploaderImg.on( 'fileQueued', function( file ) {	
		$list.html("");
	    var $li = $(
	            '<div id="' + file.id + '" class="file-item thumbnail">' +
	                '<img>' +
	                '<div class="sc">删除</div>' +
	              //  '<div class="info">' + file.name + '</div>' +
	            '</div>'
	            ),
	        $img = $li.find('img');

			$(fileListSel).on("click",".sc", function (){
			   $(delBtnSel).click();
			});
	    // $list为容器jQuery实例
	    //var $list = $('#fileList');
	    $list.append( $li );
	    // 创建缩略图
	    // 如果为非图片文件，可以不用调用此方法。
	    // thumbnailWidth x thumbnailHeight 为 100 x 100
//	    console.log("=======================================FILE");
//	    console.log(file);
	    uploaderImg.makeThumb( file, function( error, src ) {
	        if ( error ) {
	            $img.replaceWith('<span>不能预览</span>');
	            return;
	        }
	        $img.attr( 'src', src );
	    }, 200, 150 );
    	
    	$(filePickSel).hide();
    	//$(delBtnSel).show();
	});
	
	// 文件上传过程中创建进度条实时显示。
	uploaderImg.on( 'uploadProgress', function( file, percentage ) {
	    var $li = $( '#'+file.id ),
	        $percent = $li.find('.progress span');

	    // 避免重复创建
	    if ( !$percent.length ) {
	        $percent = $('<p class="progress"><span></span></p>')
	                .appendTo( $li )
	                .find('span');
	    }

	    $percent.css( 'width', percentage * 100 + '%' );
	});

	// 文件上传成功，给item添加成功class, 用样式标记上传成功。
	uploaderImg.on( 'uploadSuccess', function( file, json ) {	
		console.log(json);
	    if (json.resultCode != '1') {
            $('#'+file.id).find('p.state').text('上传出错');
        } else {
        	$( '#'+file.id ).addClass('upload-state-done');
        	$(contentSel).val(json.url);
        }
	});

	// 文件上传失败，显示上传出错。
	uploaderImg.on( 'uploadError', function( file ) {
	    var $li = $( '#'+file.id ),
	        $error = $li.find('div.error');

	    // 避免重复创建
	    if ( !$error.length ) {
	        $error = $('<div class="error"></div>').appendTo( $li );
	    }

	    $error.text('上传失败');
	});

	// 完成上传完了，成功或者失败，先删除进度条。
	uploaderImg.on( 'uploadComplete', function( file ) {
	    $( '#'+file.id ).find('.progress').remove();
	});
	
	//上传对象map对象塞入
	$(delBtnSel).hide();
	uploaderImg.delBtnSel = delBtnSel;
	uploaderImg.filePickSel = filePickSel;
	uploaderImg.fileListSel = fileListSel;
	uploaderImg.contentSel = contentSel;
	
	return uploaderImg;
}